1. Field of the Invention
The present invention relates to enhancements and performance in data transfer over TCP/IP (Transmission Control Protocol/Internet Protocol) connections. More particularly, the invention relates to a method and system capable of performing a data stream over multiple TCP/IP connections or concurrent interleaves of multiple data streams over multiple TCP/IP connections.
2. Related Art
TCP/IP is the basic communication language or protocol of the Internet. It can also be used as a communications protocol in a private network (either an intranet or an extranet). When you are set up with direct access to the Internet, your computer is provided with a copy of the TCP/IP program just as every other computer that you may send messages to or get information from also has a copy of TCP/IP.
TCP/IP is a two-layer program. Transmission Control Protocol is the higher layer which manages the assembling of a message or file into smaller packets that are transmitted over the Internet and received by a TCP/IP layer that reassembles the packets into the original message. Internet Protocol (IP) is the lower layer that handles the address part of each packet so that it gets to the right destination. Each gateway computer on the network checks this address to determine where to forward the message. Even though some packets from the same message are routed differently than others, they'll be reassembled at the destination.
Current TCP/IP uses the client/server model of communication in which a computer user (a client) requests and is provided a service (such as sending a Web page) by another computer (a server) in the network. TCP/IP communication is primarily point-to-point, meaning each communication is from one point (or host computer) in the network to another point or host computer.
A current drawback or limitation in the system is that the TCP/IP layer itself is not stateless as far as any one message is concerned. Its connection remains in place until all packets in a message have been received. Further, the connection may remain in place for many message exchanges.
Consequently, the TCP/IP layer or connection can get bogged down due to a router connection or a dropped packet thus requiring retransmission of the packet. This requires renegotiation of a window size (e.g., up to 64K.) Renegotiation basically starts the window over or at a lower value.
Further, another inherent problem exists with TCP/IP in that the protocol was not designed for high bandwidth/high speed networks. The TCP/IP protocol as well as other protocols such as World Wide Web's Hypertext Transfer Protocol (HTTP) or the File Transfer Protocol (FTP) were written a over a decade ago and designed for communication over much slower communication links.
More recently, there has been an attempt to increase the speed of the data transfer over these traditional links in providing multiple TCP/IP connections. In such case, there are provided parallel TCP/IP connections wherein data is divided up and sent over a designated TCP/IP connection. While this has provided some improvement, there remains a need to improve the rate in which such data can be transmitted over such links. The present invention provides such a solution.